package com.eastfair.certificate.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.eastfair.annotation.annotation.dictionary.DictionaryField;
import com.eastfair.certificate.entity.Certificate;
import com.eastfair.certificate.enumeration.*;
import com.eastfair.demand.certificate.CertificateOrderGroup;
import com.eastfair.demand.certificate.CertificateUserGroup;
import com.eastfair.venuebooking.vo.ExhibitionSpaceVO;
import com.eastfair.venueservice.vo.ExhibitionManageVO;
import com.eastfair.venueservice.vo.ServiceProviderVO;
import com.eastfair.vo.BaseVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.eastfair.annotation.annotation.vo.VoInfo;
import com.eastfair.annotation.model.BaseVoGroupClass;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;
import static com.eastfair.core.utils.DateUtils.DEFAULT_DATE_TIME_FORMAT;

/**
 * <p>
 * 实体类
 * 用户填写的制证信息
 * </p>
 *
 * @author ligang
 * @since 2022-07-22
 */
@Data
@ApiModel(value = "CertificateUserVO", description = "用户填写的制证信息")
public class CertificateUserVO extends BaseVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long id;

    /**
     * 证件id
     */
    @ApiModelProperty(value = "证件id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @NotNull(message = "请填写证件id")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long certificateId;
    /**
     * 主体类型
     */
    @ApiModelProperty(value = "主体类型")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "主体类型长度不能超过255")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    @DictionaryField(type = "SERVICE_PROVIDER_TYPE")
    private String principalType;
    /**
     * 公司id
     */
    @ApiModelProperty(value = "公司id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long companyId;
    /**
     * 身份证（正面）
     */
    @ApiModelProperty(value = "身份证（正面）")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "身份证（正面）长度不能超过255")
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private String cardFront;
    /**
     * 身份证（反面）
     */
    @ApiModelProperty(value = "身份证（反面）")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "身份证（反面）长度不能超过255")
    private String cardBack;
    /**
     * 身份证号码
     */
    @ApiModelProperty(value = "身份证号码")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "身份证号码长度不能超过255")
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private String cardNumber;
    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "姓名长度不能超过255")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private String fullName;
    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "性别长度不能超过255")
    @DictionaryField(type = "CONTACT_GENDER")
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private String gender;
    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "联系方式长度不能超过255")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private String contactInformation;

    /**
     * 货主手机号
     */
    @ApiModelProperty(value = "货主手机号")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private String cargoMobile;


    /**
     * 展商id
     */
    @ApiModelProperty(value = "展商id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long exhibitorId;
    /**
     * 展位
     */
    @ApiModelProperty(value = "展位")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "展位长度不能超过255")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private String booth;
    /**
     * 工作证件照
     */
    @ApiModelProperty(value = "工作证件照")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "工作证件照长度不能超过255")
    private String workCertificateImg;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 512, message = "备注长度不能超过512")
    private String remarks;
    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "车牌号长度不能超过255")
    private String carNumber;
    /**
     * 车型
     */
    @ApiModelProperty(value = "车型")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "车型长度不能超过255")
    @DictionaryField(type = "CAR_TYPE")
    private String carType;
    /**
     * 车大小
     */
    @ApiModelProperty(value = "车大小")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "车大小长度不能超过255")
    private String carSize;
    /**
     * 车载货量
     */
    @ApiModelProperty(value = "车载货量")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "车载货量长度不能超过255")
    private String cargoCapacity;
    /**
     * 载货材质
     */
    @ApiModelProperty(value = "载货材质")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "载货材质长度不能超过255")
    @DictionaryField(type = "CARGO_MATERIAL")
    private String cargoMaterial;
    /**
     * 装卸方式
     */
    @ApiModelProperty(value = "装卸方式")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "装卸方式长度不能超过255")
    @DictionaryField(type = "HANDLING_MODE")
    private String handlingMode;
    /**
     * 运输品种
     */
    @ApiModelProperty(value = "运输品种")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @Size(max = 255, message = "运输品种长度不能超过255")
    private String transportVariety;
    /**
     * 申请证件类型
     */
    @ApiModelProperty(value = "申请证件类型")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "申请证件类型长度不能超过255")
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @DictionaryField(type = "CAR_DOCUMENT_TYPE")
    private String documentType;
    /**
     * 证件种类
     */
    @ApiModelProperty(value = "证件种类")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "证件种类长度不能超过255")
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private String certificateClassify;
    /**
     * 是否需要机力车
     */
    @ApiModelProperty(value = "是否需要机力车")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @DictionaryField(type = "BUESIN_YES_NO")
    private Integer isPower;
    /**
     * 机力车类型
     */
    @ApiModelProperty(value = "机力车类型")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "机力车类型长度不能超过255")
    @DictionaryField(type = "PULL_CAR_TYPE")
    private String powerClassify;
    /**
     * 展馆code
     */
    @ApiModelProperty(value = "展馆id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "展馆id长度不能超过255")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private String spaceCode;
    /**
     * 营业执照
     */
    @ApiModelProperty(value = "营业执照")
    @Size(max = 255, message = "营业执照长度不能超过255")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String businessLicense;
    /**
     * 驾驶证复印件
     */
    @ApiModelProperty(value = "驾驶证复印件")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "驾驶证复印件长度不能超过255")
    private String drivingLicense;
    /**
     * 信息统计表
     */
    @ApiModelProperty(value = "信息统计表")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "信息统计表长度不能超过255")
    private String informationStatistics;
    /**
     * 报告复印件
     */
    @ApiModelProperty(value = "报告复印件")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "报告复印件长度不能超过255")
    private String report;
    /**
     * 特种设备人员证
     */
    @ApiModelProperty(value = "特种设备人员证")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "特种设备人员证长度不能超过255")
    private String specialCertificate;
    /**
     * 特种车辆证
     */
    @ApiModelProperty(value = "特种车辆证")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "特种车辆证长度不能超过255")
    private String specialVehicleCertificate;
    /**
     * 车辆年检报告
     */
    @ApiModelProperty(value = "车辆年检报告")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 255, message = "车辆年检报告长度不能超过255")
    private String yearlyInspection;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer isDeleted;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long tenantId;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long projectId;
    /**
     * 子系统id
     */
    @ApiModelProperty(value = "子系统id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long subsystemId;
    /**
     * 是否可用，1是；0否
     */
    @ApiModelProperty(value = "是否可用，1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer isEnabled;

    /**
     * 一次审核状态#{NONE:不用审核;CHECK:审核中;CHECK_SUCC:审核成功;CHECK_FAIL:审核失败;}
     */
    @ApiModelProperty(value = "一次审核状态#{NONE:不用审核;CHECK:审核中;CHECK_SUCC:审核成功;CHECK_FAIL:审核失败;}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @DictionaryField(type = "CERTIFICATE_FIRST_AUTH")
    private CertificateUserFirstAuthStatusEnum firstAuthStatus;

    /**
     * 一次审核说明
     */
    @ApiModelProperty(value = "一次审核说明")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private String firstAuthText;

    /**
     * 二次审核状态#{NONE:不用审核;CHECK:审核中;CHECK_SUCC:审核成功;CHECK_FAIL:审核失败;}
     */
    @ApiModelProperty(value = "二次审核状态#{NONE:不用审核;CHECK:审核中;CHECK_SUCC:审核成功;CHECK_FAIL:审核失败;}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @DictionaryField(type = "CERTIFICATE_SECOND_AUTH")
    private CertificateUserSecondAuthStatusEnum secondAuthStatus;

    /**
     * 二次审核说明
     */
    @ApiModelProperty(value = "二次审核说明")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private String secondAuthText;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.all.class})
    private Long orderId;

    /**
     * 展会id
     */
    @ApiModelProperty(value = "展会id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.all.class})
    private Long exhibitionId;
    /**
     * 是否支付
     */
    @ApiModelProperty(value = "是否支付")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.all.class})
    private Integer isPay;
    /**
     * 进入时间
     */
    @ApiModelProperty(value = "进入时间")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime comeInTime;

    /**
     * 工种高空作业证电工证其他
     */
    @ApiModelProperty(value = "工种高空作业证电工证其他")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    @DictionaryField(type = "WORK_TYPE")
    private String workType;


    /**
     * 是否注销
     */
    @ApiModelProperty(value = "是否注销")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Integer isCancel;

    /**
     * 是否挂失
     */
    @ApiModelProperty(value = "是否挂失")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Integer isLoss;

    /**
     * 是否领取
     */
    @ApiModelProperty(value = "是否领取")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Integer isDraw;

    /**
     * 是否黑名单
     */
    @ApiModelProperty(value = "是否黑名单")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Integer isBlack;


    /**
     * 工作结束时间
     */
    @ApiModelProperty(value = "工作结束时间")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime workEndTime;
    /**
     * 工作开始时间
     */
    @ApiModelProperty(value = "工作开始时间")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime workStartTime;

    /**
     * 是否补证
     */
    @ApiModelProperty(value = "是否补证")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Integer isMake;
    /**
     * 订单号
     */
    @ApiModelProperty(value = "订单号")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private String orderNumber;




    /**
     * 服务商信息
     */
    @ApiModelProperty(value = "服务商信息")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private ServiceProviderVO serviceProviderVO;

    /**
     * 展会预定场地
     */
    @ApiModelProperty(value = "展会预定场地")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private ExhibitionSpaceVO exhibitionSpaceVO;

    /**
     * 展会信息
     */
    @ApiModelProperty(value = "展会信息")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private ExhibitionManageVO exhibitionManageVO;

    /**
     * 证件类型:#{CAR:车证;PEOPLE:人证;POWER:机力车证;OTHER:其他证;}
     */
    @ApiModelProperty(value = "证件类型:#{CAR:车证;PEOPLE:人证;POWER:机力车证;OTHER:其他证;}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    @DictionaryField(type = "CERTIFICATE_TYPE")
    private CertificateUserCertificateTypeEnum certificateType;

    /**
     * 证件状态:#{SUBMIT:待提交;PAY:待付款;NO_PRINT:待制证;PRINT:已制证;DRAW:已领取;}
     */
    @ApiModelProperty(value = "证件状态:#{SUBMIT:待提交;PAY:待付款;NO_PRINT:待制证;PRINT:已制证;DRAW:已领取;}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    @DictionaryField(type = "CERTIFICATE_STATUS")
    private CertificateUserCertificateStatusEnum certificateStatus;


    /**
     * 来源#{ONLINE:线上;SPOT:现场;}
     */
    @ApiModelProperty(value = "来源#{ONLINE:线上;SPOT:现场;}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private CertificateUserResourceTypeEnum resourceType;

    /**
     * 订单信息
     */
    @ApiModelProperty(value = "订单信息")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {CertificateUserGroup.pageFirstAuthForm.class})
    private CertificateOrderVO certificateOrderVO;

    /**
     * 是否同步 1是 0否
     */
    @ApiModelProperty(value = "是否同步 1是 0否")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private Integer isSycn;

    /**
     * 车轴数
     */
    @ApiModelProperty(value = "车轴数")
    @Size(max = 255, message = "车轴数长度不能超过255")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    @DictionaryField(type = "CONTACT_GENDER")
    private String axleCount;


    /**
     * 公司名称
     */
    @ApiModelProperty(value = "公司名称")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private String companyName;
    /**
     * 展览唯一标识
     */
    @ApiModelProperty(value = "展览唯一标识")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private String eUuid;
    /**
     * 数据来源:#{CENTIFICATE:制证;E:E展览;}
     */
    @ApiModelProperty(value = "数据来源:#{CENTIFICATE:制证;E:E展览;}")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private CertificateUserDataResourceEnum dataResource;

    @ApiModelProperty(value = "证件设置")
    private CertificateVO certificate;


    /**
     * 领取人手机号
     */
    @ApiModelProperty(value = "领取人手机号")
    @Size(max = 255, message = "领取人手机号长度不能超过255")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private String drawMobile;
    /**
     * 领取人姓名
     */
    @ApiModelProperty(value = "领取人姓名")
    @Size(max = 255, message = "领取人姓名长度不能超过255")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private String drawName;
    /**
     * 领取人身份证号
     */
    @ApiModelProperty(value = "领取人身份证号")
    @Size(max = 255, message = "领取人身份证号长度不能超过255")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private String drawIdcard;



    @ApiModelProperty("创建时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    protected LocalDateTime createTime;

    @ApiModelProperty("更新时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    protected LocalDateTime updateTime;


    /**
     * 领取方式:#{MAKE:预约领取;SITE:现场领取;}

     */
    @ApiModelProperty(value = "领取方式:#{MAKE:预约领取;SITE:现场领取;} ")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private CertificateUserDrawTypeEnum drawType;
    /**
     * 领取时间

     */
    @ApiModelProperty(value = "领取时间")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private LocalDateTime drawTime;
    /**
     * 领取预约时间
     */
    @ApiModelProperty(value = "领取预约时间")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime drawMakeTime;

    /**
     * 预约进入时间结束
     */
    @ApiModelProperty(value = "预约进入时间结束")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime appointmentInEndTime;

    @ApiModelProperty(value = "是否特殊货物 1-是 0-否")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private Integer isSpecial;

    /**
     * 预约进入时间开始
     */
    @ApiModelProperty(value = "预约进入时间开始")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime appointmentInStartTime;

    /**
     * 是否打印
     */
    @ApiModelProperty(value = "是否打印")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Integer isPrintTake;

    /**
     * 领取单号
     */
    @ApiModelProperty(value = "领取单号")
    @VoInfo(groups = {CertificateOrderGroup.all.class})
    private String drawNumber;

}
